{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "import matplotlib\n",
    "import matplotlib.pyplot as plt\n",
    "import numpy as np\n",
    "import pandas as pd\n",
    "import seaborn as sns\n",
    "import torch\n",
    "from transformers import CLIPVisionModel\n",
    "\n",
    "plt.rcParams[\"font.family\"] = \"Times New Roman\"\n",
    "plt.rcParams[\"mathtext.fontset\"] = \"cm\"\n",
    "\n",
    "matplotlib.rcParams[\"pdf.fonttype\"] = 42\n",
    "matplotlib.rcParams[\"ps.fonttype\"] = 42"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "finetuned_model = CLIPVisionModel.from_pretrained(\"tanganke/clip-vit-base-patch32_fashion_mnist\")\n",
    "pretrained_model = CLIPVisionModel.from_pretrained(\"openai/clip-vit-base-patch32\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 55,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYUAAAEiCAYAAAAWOs4eAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjEsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvc2/+5QAAAAlwSFlzAAAPYQAAD2EBqD+naQAAbGBJREFUeJzt3XlcVFX/wPHPnRkY9h1kUQF3c8lM1FIzc80eza3SMm3RLMs0s0V9zCxzqadSKzXzKTPNvV/aU/m0qJVlSqbpQ2YqoAjKquwMs5zfHwNXENBhHBjA8369RubeuXPvdw7j/XLPOfccRQghkCRJkiRA4+wAJEmSpLpDJgVJkiRJJZOCJEmSpJJJQZIkSVLJpCBJkiSpZFKQJEmSVDIpSJIkSSqZFCRJkiSVTAqSJEmSSiYFqV7Lyspi8eLFREZGkpiYeM37e++993j66adp3rw5jz/+OEaj8Yrbm81mPv74Y5o3b37Nx66ut99+m5tuusmmbS0WC5999hl9+/Zl3rx5NRyZVJ/JpCDVa2azGY1Gw5kzZ655X2vWrOHAgQMsW7aMLVu28Pnnn5OUlHTF92zZsoXVq1cTHx9/zcevrnbt2jFgwACbthVC0KJFC/bt28fVRrY5evSoI8KT6imZFKR6LTg4mM6dOztkX2vWrKFp06YAdO7cmfPnz9OsWbMrvmf06NE88MADDjl+dQ0YMIDFixfbtK1Wq6Vjx44EBQVdcTuj0cisWbMcEZ5UT8mkINV7Wq3WIftJSkqya19ubm4OOX5t0Giq/i9vNpt58skn5ZXCdU4mBalOOXjwIA8//DB33nknR48epVevXnh7ezN79myMRiPPPPMMPj4+dOrUqdKqnYKCAj744AM6derEt99+y6OPPoq3tze9evXi5MmTlR7z8OHDTJgwgbS0NHbs2MGECRPYu3cvAKdOnWLChAlMmTKFW265hRUrVtj1uX777Teio6PR6/Xs27ePhIQEhg8fjqIoTJ06lZycHAoKChg3bhw9evQgLS0NgK1btzJ9+nQGDhxIt27d2LdvHwAnT55k2rRp3HjjjeWOs3PnTp5++mmWLl3Kk08+SVFRUaXxfPzxx4SFhREdHc3hw4cB+Pzzz/n999/JzMzk8ccfZ926dXZ9VqmeE5JUh/z999/i5ptvFi1bthRr1qwRqampYubMmQIQL774ojhw4IBISEgQjRs3FpMnTxZCCLF7924BiISEBJGVlSXWrVsnADFmzBjx3Xffif/7v/8T3t7eokuXLsJisVR57MjISDF37lx1OT09XURFRYkTJ04IIYT48MMPBSB+++23cu/76KOPhC3/lTZu3Cg0Go3IysoSQgiRlpYmXFxcxNatW9VtZs+eLU6dOiWEEGLPnj1i6dKl6muPPvqoCAwMFBcvXhSJiYli2LBhIjIyUn392LFjwtPTU2RmZgohhPj0009Fo0aNxO233y4+++wz9TPedttt4vPPPxenT58W7dq1E8OHD1f3MXfu3HL7lK4/8kpBqlNatmxJmzZtCA8PZ/z48YSEhPDggw8CMHDgQGJiYoiKiqJnz578/fffFd7v7+/PrbfeCsCDDz5I3759GTZsGFOnTuW3337j0KFDNsfy3nvv0bx5c1q0aAHAvffey5tvvknLli3t+mx33303Pj4+bN26FYCgoCBCQ0P5+OOPAWtjcNl2jFdeeYXTp0+zaNEiFi1ahLu7O506deLMmTNERkbSvn37cvv/+uuv8fb2JiAgAIB+/fqRmprK4sWLGT58uLpd7969ufvuu2natCmDBw/mr7/+suvzSA2TztkBSNLldLryX0t3d/cK2+j1+iq7iyqKUuF9d9xxB/Pnz+fUqVM2N0wfOHCAwMBAddnT05Pp06fb9N7KuLm5cc8997Bu3TomTpzIl19+SZ8+ffj0009JTU3l77//plevXur2R48e5bXXXqN79+6V7u/y9o+goCCysrIwm81otVq8vLwASElJKbdd2XYFd3f3KquYpOuTvFKQrgshISGANZnYSq/XV3o1kpuba3cc48aN46effuLMmTNs376d999/Hz8/Pz755BP+7//+j5EjR6rbGgwGDh48WO79FouFrKysSvd977330rNnT7UtYM+ePURGRtKnT58q41EUBYvFYvfnkRoemRSkBstsNqvPz58/j06no1u3bja/v127dhw+fJj9+/er6+Lj4/npp5/sjqlHjx5ERUXx4osv0r59e9zc3Lj//vtZvXo1ZrNZ/eu+9Pj/+te/yiWhTZs2kZeXV+m+9Xo9N910EwcOHOCdd95RY/f19bU5vtKrLOn6JZOCVOeYzeZyJ/TSv2TL/kUrhFC3ufxnqbJdKz/99FMmTpxIo0aNAHjyySeZMmVKue0LCwspKChQl5988km8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",
      "text/plain": [
       "<Figure size 400x300 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "CEV_dict = {}\n",
    "\n",
    "for layer_index in range(0, len(finetuned_model.vision_model.encoder.layers), 3):\n",
    "    dW = finetuned_model.vision_model.encoder.layers[layer_index].mlp.fc1.weight - pretrained_model.vision_model.encoder.layers[layer_index].mlp.fc1.weight\n",
    "    dW = dW.detach().clone()\n",
    "\n",
    "    # calculate the cummulative explained variance\n",
    "    u, s, vh = torch.linalg.svd(dW, full_matrices=False)\n",
    "    sum_eigenvalues = torch.sum(s**2)\n",
    "    cumulative_explained_variance = torch.cumsum(s**2 / sum_eigenvalues, dim=0)\n",
    "    CEV_dict[layer_index] = cumulative_explained_variance\n",
    "\n",
    "# plot the cummulative explained variance\n",
    "plt.figure(figsize=(4, 3))\n",
    "for layer_index in CEV_dict.keys():\n",
    "    plt.plot(CEV_dict[layer_index], linewidth=2, label=f'Layer {layer_index+1}')\n",
    "plt.grid(True, alpha=0.3)\n",
    "plt.title(\"mlp.fc1.weight\")\n",
    "plt.xlabel('Index of Eigenvalues')\n",
    "plt.ylabel('Cumulative Explained Variance')\n",
    "plt.legend()\n",
    "plt.tight_layout()\n",
    "\n",
    "plt.savefig('clip_vit_b32-cumulative_explained_variance-mlp.fc1.weight.pdf', bbox_inches='tight')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 56,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYUAAAEiCAYAAAAWOs4eAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjEsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvc2/+5QAAAAlwSFlzAAAPYQAAD2EBqD+naQAAbKNJREFUeJzt3Xd8FNXawPHflmTTewJJIAUERIqINOlIFaUjgiKIdBRBwBK4iBQpelVQQUSuIkU6V/D1ioqAgiBEimBEpCQQEtIgpCfbzvvHJpMsCbgs6Zzv57NmZ3Z25tnDOs/OOWfOUQkhBJIkSZIEqCs6AEmSJKnykElBkiRJUsikIEmSJClkUpAkSZIUMilIkiRJCpkUJEmSJIVMCpIkSZJCJgVJkiRJIZOCJEmSpJBJQarSrl+/zpIlSwgNDSUmJuau97d8+XJeeukl6taty4QJEzAYDLfcNiMjgzFjxuDr60tISAjz5s3DZDLddQy2ev/993nooYds2tZsNrNjxw66du3K3LlzyzgyqSqTSUGq0kwmE2q1msuXL9/1vtasWcPRo0f54IMP2Lp1K1999RWxsbG33H7KlCl4enry0Ucf0aZNG+bMmcPChQvvOg5bNWrUiB49eti0rRCC++67j8OHD/NPI9ucPn26NMKTqiiZFKQqzd/fn+bNm5fKvtasWUNISAgAzZs3JyEhgTp16pS4bXp6Ok2aNOHdd99l2LBhbNmyha5du/Lpp5+WSiy26NGjB0uWLLFpW41GQ9OmTfHz87vtdgaDgZkzZ5ZGeFIVJZOCVOVpNJpS2U9sbKzN+zKbzUyYMMFqXZ8+fbh+/XqpxFJW1Opb/y9vMpl44YUX5JXCPU4mBalSOXbsGKNGjeKxxx7j9OnTdOjQAXd3d2bNmoXBYODll1/Gw8ODZs2alVi1k52dzaeffkqzZs344YcfGD16NO7u7nTo0IHz58+XeMyTJ08yZswYkpKS2LVrF2PGjOHgwYMAXLhwgTFjxjB58mQeeeQRPv74YwC8vLxwdna22o/RaKRNmzYlHuO3334jPDwcnU7H4cOHiY6OZsCAAahUKqZMmUJ6ejrZ2dmMGDGCdu3akZSUBMC2bduYNm0aPXv2pHXr1hw+fBiA8+fPM3XqVB588EGr4+zevZuXXnqJZcuW8cILL5Cbm1tiPF988QWBgYGEh4dz8uRJAL766iuOHz/OtWvXmDBhAuvXry/xvVI1JySpEvn777/Fww8/LOrVqyfWrFkjEhMTRUREhADE66+/Lo4ePSqio6NFrVq1xKRJk4QQQuzbt08AIjo6Wly/fl2sX79eAGLYsGFiz5494r///a9wd3cXLVq0EGaz+ZbHDg0NFXPmzFGWk5OTRVhYmDh37pwQQojPPvtMAOK3334r8f09e/YUu3fvvuX+N23aJNRqtbh+/boQQoikpCTh4OAgtm3bpmwza9YsceHCBSGEEPv37xfLli1TXhs9erTw9fUVN27cEDExMaJ///4iNDRUef3MmTPC1dVVXLt2TQghxJdffilq1KghOnfuLHbs2KF8xo4dO4qvvvpKXLp0STRq1EgMGDBA2cecOXOs9inde+SVglSp1KtXj/vvv5+goCBGjhxJQEAAzz77LAA9e/akZcuWhIWF0b59e/7+++9i7/f29qZt27YAPPvss3Tt2pX+/fszZcoUfvvtN06cOGFzLMuXL6du3brcd999AAwZMoR3332XevXqFdv2+PHjODs707Nnz1vur1+/fnh4eLBt2zYA/Pz8qFmzJl988QVgaQwu2o4xb948Ll26xOLFi1m8eDHOzs40a9aMy5cvExoaSuPGja32/+233+Lu7o6Pjw8A3bp1IzExkSVLljBgwABlu06dOtGvXz9CQkLo3bs3f/31l81lIlV/2ooOQJJuptVafy1vrqYB0Ol0t+wuqlKpir3v0UcfZcGCBVy4cMHmhumjR4/i6+urLLu6ujJt2rRi2+n1et566y0+++yz2+7PycmJJ598kvXr1zN27Fi++eYbunTpwpdffkliYiJ///03HTp0ULY/ffo0b7311i2rpG5u//Dz8+P69euYTCY0Gg1ubm4AxMfHW21XtF3B2dn5llVM0r1JXilI94SAgADAkkxspdPpSrwaycjIsFqeOXMmb775Jt7e3v+4zxEjRnDgwAEuX77Mzp07+eSTT/Dy8mLdunX897//ZdCgQcq2eXl5HDt2zOr9ZrP5lo3ZQ4YMoX379kpbwP79+wkNDaVLly63jEelUmE2m/8xbuneIZOCVG0VvZEsISEBrVZL69atbX5/o0aNOHnyJEeOHFHWXbx4kQMHDijL7733Ht26daNJkybKuoJG4pK0a9eOsLAwXn/9dRo3boyTkxNPP/00q1evxmQyKb/uC47/73//2yoJbd68mczMzBL3rdPpeOihhzh69CgffvihErunp6fNn7ngKku6d8mkIFU6JpPJ6oRe8Eu26C9aIYSyzc1/CxTtWvnll18yduxYatSoAcALL7zA5MmTrbbPyckhOztbWX7hhRdwc3Nj4MCBfPzxx6xYsYKXXnqJrl27ArBq1Sql587u3bv55ptvWLRoETt37gRgz549tGjRgsTERGWfKpWKZ599lv/7v/9j1KhRADz33HOcPXuWfv36WcXz+uuvExMTQ5s2bVi2bBmzZ8/mp59+Uu6luLmcfvzxR7766itatWpFQEAA9erV49SpU1afyWQyFbsyKLoPV1dXkpOTSUpK4n//+x/SPaiiW7olqag9e/aI4OBg4eHhITZu3Cji4+PFCy+8oPQm+vvvv8XOnTtF7dq1hbu7u1i7dq146qmnBCAmT54s4uLiRHR0tADEoEGDxOzZs8W4cePEiy++KPLy8pTj9OvXT/Tv318IYekF9OabbwpA1K1bV2zatEncuHFDCCHEzz//LJo2bSpcXFzEY489JmJiYoQQQmzevFmoVCoBWD00Go1ITEwUQgixdetW4evrKy5dumT1Gc+fPy+mTp1qta5Pnz4l9oxauXKlCAkJEZ6enuK5554TmZmZQgghIiMjRZMmTYRGoxErV64UQghx9epVUa9ePeHn5yccHR2VmMLDw8X169fF+++/L9RqtWjevLk4cOCAOHTokHj44YeFWq0Wn3zyiRBCiEuXLon69euLhg0bijNnztz1v6dU9aiE+Id73iWpiomJiSE8PJx9+/bRuXPnig6n3Pz444+cP3+e8ePHK+vS09N59913adq0qVV7hSTdiux9JEnVgNFoZPTo0fzyyy9W6z08PAgMDKRBgwYVFJlU1cg2BanaMRqNALcd4bS6ycvL49q1a0ycOJEjR46QlpZGYmIi69atIyEhodg9DZJ0KzIpSNXKhQsXePvttwH4+OOPOXv2bAVHVD5cXV355Zdf0Gq19O3blxo1atCrVy9yc3N58803Kzo8qQqRbQqSJEmSQl4pSJIkSQqZFCRJkiRFte99ZDabiY+Px93dXd6tKUlStSWEICMjg6CgoNvOm/FPqn1SiI+Pp3bt2hUdhiRJUrmIjY2lVq1adr+/2icFd3d3wFJQHh4eNr/PbDaTnJyMv7//XWXde4EsK9vIcrKdLCvb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",
      "text/plain": [
       "<Figure size 400x300 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "CEV_dict = {}\n",
    "\n",
    "for layer_index in range(0, len(finetuned_model.vision_model.encoder.layers), 3):\n",
    "    dW = finetuned_model.vision_model.encoder.layers[layer_index].mlp.fc2.weight - pretrained_model.vision_model.encoder.layers[layer_index].mlp.fc2.weight\n",
    "    dW = dW.detach().clone()\n",
    "\n",
    "    # calculate the cummulative explained variance\n",
    "    u, s, vh = torch.linalg.svd(dW, full_matrices=False)\n",
    "    sum_eigenvalues = torch.sum(s**2)\n",
    "    cumulative_explained_variance = torch.cumsum(s**2 / sum_eigenvalues, dim=0)\n",
    "    CEV_dict[layer_index] = cumulative_explained_variance\n",
    "\n",
    "# plot the cummulative explained variance\n",
    "plt.figure(figsize=(4, 3))\n",
    "for layer_index in CEV_dict.keys():\n",
    "    plt.plot(CEV_dict[layer_index], linewidth=2, label=f'Layer {layer_index+1}')\n",
    "plt.grid(True, alpha=0.3)\n",
    "plt.title(\"mlp.fc2.weight\")\n",
    "plt.xlabel('Index of Eigenvalues')\n",
    "plt.ylabel('Cumulative Explained Variance')\n",
    "plt.legend()\n",
    "plt.tight_layout()\n",
    "\n",
    "plt.savefig('clip_vit_b32-cumulative_explained_variance-mlp.fc2.weight.pdf', bbox_inches='tight')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "smile",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.12.9"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
